옵시디언 LLM 위키 플러그인 만들기

🏆 프로젝트 목표

옵시디언 vault를 그냥 메모장으로 두지 않고, Claude Code가 제 문체 그대로 노트를 읽고 쓸 수 있는 "LLM 위키"로 만들어보고 싶었습니다. RAG처럼 매번 다시 찾는 방식 말고, 한 번 정리해두면 계속 최신 상태로 유지되는 구조를 원했습니다.


📅 스케쥴

2026-09-14 (하루)


✅ 전반적인 경험

먼저 vault 구조부터 살펴봤습니다. 폴더마다 노트 개수도 다르고 무엇보다 노트 종류에 따라 말투와 형식이 확연히 갈렸습니다. 매일 쓰는 기록은 항상 존댓말에 정해진 섹션을 그대로 채우는 식이었습니다. 자유롭게 쓰는 학습 노트는 반말과 구어체가 섞여 있었습니다. 이 차이를 먼저 확인해두지 않았다면 나중에 자동으로 쓰는 노트들이 전부 같은 톤으로 나왔을 것 같습니다.

그 다음엔 실제 명령어를 만들었습니다. 첫 번째는 /learn-voice입니다. vault의 기존 노트 30여 개를 최신순으로 읽어서 frontmatter 형식, 불릿 기호, 종결어미, 자주 쓰는 접속어 같은 걸 뽑아내고 그걸 STYLE.md라는 파일로 저장하게 만들었습니다. 이 파일에서 제일 신경 쓴 부분은 "절대 안 쓰는 표현" 목록이었습니다. 문체를 흉내내는 것보다 AI 특유의 상투어(예를 들어 "~에 대해 알아보겠습니다", "결론적으로" 같은 것)를 안 쓰는 게 훨씬 효과가 크다고 생각했기 때문입니다. 실제로 돌려보니 32개 샘플에서 이런 표현이 전부 0회로 나와서 금지 목록에 그대로 넣었습니다.

두 번째는 my-voice 스킬입니다. 이건 STYLE.md를 어떻게 적용할지 안내하는 역할만 하고 규칙 자체는 옮겨 적지 않도록 만들었습니다. STYLE.md는 /learn-voice가 다시 돌 때마다 갱신되는데, 스킬 본문에 규칙을 복사해두면 둘이 어긋날 수 있기 때문입니다.

세 번째는 /save입니다. 대화 내용을 개념 단위로 묶어서 vault에 저장하는 명령어인데, 여기서 몇 가지를 정했습니다. 기존에 관련 노트가 있으면 새로 만들지 않고 덧붙이기만 하도록 했습니다. 삭제 동작은 아예 하지 못하게 막았습니다. 그리고 같은 저장 대상이라도 일반적인 지식을 담는 곳과 특정 경험을 담는 곳은 쓰는 관점이 달라야 한다는 것도 정해뒀습니다. 하나는 누가 봐도 되는 지식으로 일반화해서 쓰고 다른 하나는 반대로 왜 그렇게 결정했는지 과정을 살려서 씁니다. 무엇보다 자동화라도 실제로 저장하기 전에는 반드시 내용을 전부 보여주고 확인을 받도록 못 박았습니다.